/*
 * 文件名：StreamingMediaServiceImpl.java	 
 * 时     间：下午8:12:03
 * 作     者：Administrator       
 * 版     权： 2012-2022 湖南智软网络科技, 公司保留所有权利.
 * 联     系：http://www.073586.com/
 */
package com.local.service.impl;

import org.springframework.stereotype.Service;

import com.cz073586.ffmpeg.manager.ProcessMaager;
import com.cz073586.ffmpeg.threads.VidoProtocolConvertRunble;
import com.cz073586.tools.util.Log4jUtil;
import com.local.service.face.StreamingMediaService;
import com.qianhai.common.exception.BaseException;

/**
 * 类描述:这里是类描述
 * 
 * @ClassName: StreamingMediaServiceImpl
 * @author Administrator
 * @date 2015年7月13日 下午8:12:03
 */
@Service
public class StreamingMediaServiceImpl implements StreamingMediaService
{
	private final static Log4jUtil log = Log4jUtil
			.getLog4j(StreamingMediaServiceImpl.class);
	
	/**
	 * 
	 * 方法描述： 创建相机与流媒体连接。
	 * @Title: createConnect 
	 * @param @param key 唯一标示,可以为设备 编码
	 * @param @param sourceStream 相机原始流:rtsp://192.168.2.180:50000/video ,从岗亭配置里获取
	 * @param @param resolution 分辨率 1600X1200 ,从岗亭流媒配置获取
	 * @param @param target 输出目标（流媒体服务器）rtmp://192.168.2.100:1935/live/livestream1,livestream1:需要保持唯一
	 * @param @param showInfo 是否输出控制台日志,传false既可以
	 * @param @return
	 * @param @throws BaseException
	 * @return String 返回前端访问流媒地址
	 * @user Administrator
	 * 2015年7月13日
	 * @throws
	 */
	@Override
	public String createConnect(String key, String sourceStream,
			String resolution, String target, boolean showInfo)
			throws BaseException
	{
		try
		{
			VidoProtocolConvertRunble vidoRunble = new VidoProtocolConvertRunble(
					key, sourceStream, resolution, target, showInfo);
			ProcessMaager.instance().execVidoProtocolConvertRunble(vidoRunble);
		} catch (Throwable e)
		{
			log.error(e.getMessage(), e);
			throw new BaseException(e.getMessage());
		}
		return target;
	}
	
	@Override
	public int deleteConnect(String key) throws BaseException
	{
		try
		{
			ProcessMaager.instance().killVidoProtocolConvertRunble(key);
		} catch (Throwable e)
		{
			log.error(e.getMessage(), e);
			throw new BaseException(e.getMessage());
		}
		return 1;
	}
	
}
